"""
魔法方法的介绍
    概述：
        魔法方法 在特定的场合下，会自动的被调用的函数，用来丰富类，对象的功能的
    格式：
        __方法名__()

    常用的魔法方法：
        __init__() 在常见对象的时候，自动调用，一般用于给对象的属性进行初始化
        __str__()  在打印 对象的引用的时候自动调用
        __repr__() 打印 对象 的应用的时候自动调用， 打印对象类型的列表时自动调用
        __del__()
"""
class Student:
    # 定义init魔法方法，用来给对象的属性赋值，有参数
    def __init__(self,name,age):
        self.name = name
        self.age = age

    # 魔法方法str,默认返回的是对象的地址，我们改为返回对象的属性值
    # def __str__(self):
    #     return f'Student(name={self.name}, age={self.age})'
    #
    # def __repr__(self):
    #     return self.__str__()

    def __repr__(self):
        return f'Student(name={self.name}, age={self.age})'

if __name__ == '__main__':
    s1 = Student('刘千琪',18)
    s2 = Student('任瑜阳',20)
    s3 = Student('崔龙腾',21)
    s4 = Student('姚晓冲',22)

    stus = [s1,s2,s3,s4]

    print(stus)

    # for stu in stus:
    #     print(stu)

    print(s1)
    print(s2)


